package http.secure.common.keys;

/**
 * 安全传输模块专用密钥存储接口
 * 业务代码只需关注数据用途，无需关心会话隔离细节
 */
public interface SecureKeyStore {
    /**
     * 保存值到存储（带作用域）
     *
     * @param key   数据作用域
     * @param value 值
     */
    void save(String key, String value, long timeout);

    /**
     * 获取值（带作用域）
     *
     * @param key 数据作用域
     * @return 值，不存在返回null
     */
    String get(String key);

    /**
     * 获取key获取时间
     *
     * @return 如果不存在返回null
     */
    Long getExpireTime(String key);

    /**
     * 删除值（带作用域）
     *
     * @param key 数据作用域
     */
    void delete(String key);
}